// 对axios进行二次封装
import axios from 'axios';

import store from "@/store";

// 引入进度条及样式
import nprogress from 'nprogress'
import 'nprogress/nprogress.css'

// 进度条   nprogress
// start 进度条开始，done进度条结束

let request = axios.create({
    // 配置对象http：xxxx.xxxx.xxx:/baseURL/xxx
    baseURL: "/api",
    // 设置请求超时
    timeout: 5000,
})

// 请求拦截器
request.interceptors.request.use((config) => {
    if(store.state.detail.uuid_token){
        // userTempId需与后端开发人员确认
        config.headers.userTempId = store.state.detail.uuid_token;
    }
    // token校验获取用户信息，携带token给服务器
    if(store.state.user.token){
        config.headers.token = store.state.user.token;
    }
    // 进度条开始动
    nprogress.start();
    return config;
})


//响应拦截器
request.interceptors.response.use((res) => {
    // 进度条结束
    nprogress.done();
    return res.data;
}, (err) => {
    return Promise.reject(new Error("faile"));
})

export default request;
